import { ArticleModel } from '@/module/article/article.model';
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import {
  EvaluationV1Controller,
} from './evaluation.v1.controller';
import {
  EvaluationV1AdminController,
} from './evaluation.v1-admin.controller';
import { EvaluationModel } from './evaluation.model';
import { EvaluationService } from './evaluation.service';
import { EvaluationDataModule } from "@/module/evaluation-data/evaluation-data.module";
import { EvaluationProjectModel } from "@/module/evaluation-project/evaluation-project.model";
import { EvaluationComposeModel } from "@/module/evaluation-compose/evaluation-compose.model";
import { EvaluationComposeModule } from "@/module/evaluation-compose/evaluation-compose.module";
import { EvaluationDataModel } from "@/module/evaluation-data/evaluation-data.model";
import { EvaluationSpecificationModel } from "@/module/evaluation-specification/evaluation-specification.model";
import { SpecificationModel } from "@/module/specification/specification.model";
import { EvaluationFileModel } from "@/module/evaluation-file/evaluation-file.model";
import { EQModel } from '../eq/eq.model';
import { EQModule } from '../eq/eq.module';
import { EvaluationV1OpenapiController } from './evaluation.v1-openapi.controller';

@Module({
  imports: [
    TypeOrmModule.forFeature([
      EvaluationModel,
      EvaluationDataModel,
      ArticleModel,
      EvaluationProjectModel,
      EvaluationComposeModel,
      EQModel,
      EvaluationSpecificationModel,
      EvaluationFileModel,
      SpecificationModel,
    ]),
    EvaluationDataModule,
    EvaluationComposeModule,
  ],
  controllers: [EvaluationV1Controller, EvaluationV1AdminController, EvaluationV1OpenapiController],
  providers: [EvaluationService],
  exports: [EvaluationService]
})
export class EvaluationModule {}
